﻿#include <vector>
using namespace std;
#include  "vector.h"

//int main()
//{
//	vector<int> v;
//	size_t old = v.capacity();
//	cout << old << ' ';
//
//	for (int i = 0; i < 100; i++)
//	{
//		v.push_back(i);
//		if (old < v.capacity())
//		{
//			old = v.capacity();
//			cout << old << ' ';
//		}
//	}
//	cout << endl;
//	return 0;
//}

//int main()
//{
//	int arr[] = { 0,1,2,3,4,5,6,7,8,9 };
//	vector<int> v(arr, arr+10);
//	const vector<int> vv(v);
//	for (auto e : v)
//	{
//		cout << e << ' ';
//	}
//	cout << endl;
//	v.erase(v.cbegin());
//	v.erase(v.cbegin()+4);
//	for (auto e : v)
//	{
//		cout << e << ' ';
//	}
//	cout << endl;
//
//	for (auto it = vv.cbegin(); it != vv.cend(); it++)
//	{
//		cout << *it << ' ';
//	}
//	cout << endl;
//
//	return 0;
//}

//int main()
//{
//    int a[] = { 1,2,3,4,5,6 };
//    vector<int> v1({ 1,2,3,4,5,6 });
//    vector<int> v2 = { 1,2,3,4,5,6 };
//    for (int e : v1)
//    {
//        cout << e << ' ';
//    }
//    cout << endl;
//    for (int e : v1)
//    {
//        cout << e << ' ';
//    }
//    cout << endl;
//    return 0;
//}
//class A
//{
//public:
//	A(int x = 5)
//	{
//		_a = x;
//	}
//	A(const A& a)
//	{
//		_a = a._a;
//	}
//	int _a;
//};
//void test1()
//{
//	lzc::vector<int> v(10, 2);
//	lzc::vector<int> vv(v);
//	lzc::vector<int> a(10);
//	lzc::vector<int> b;
//	v.reserve(100);
//	a.resize(20, 5);
//	cout << v << vv << a;
//	v.swap(a);
//	cout << v << a;
//	b = a;
//	cout << b;
//}
//void test2()
//{
//	lzc::vector<int> v(10, 1);
//	v.insert(v.begin(), 0);
//	lzc::vector<int> vv;
//	for (int i = 0; i < 10; i++)
//		vv.push_back(2);
//	cout << v << vv;
//	//cout << v << vv;
//	//for (int i = 0; i < 4; i++)
//	//	vv.pop_back();
//	//cout << vv;
//	//v.erase(v.begin());
//	//cout << v;
//}
//void test3()
//{
//	lzc::vector<int> v;
//	for (int i = 0; i < 5; i++)
//		v.push_back(1);
//	cout << v;
//	for (int i = 0; i < 5; i++)
//		v.pop_back();
//	cout << v;
//	lzc::vector<int> vv(10,2);
//	vv.clear();
//}
//void test4()
//{
//	lzc::vector<int> v(5, 1);
//	for (auto& e : v)
//	{
//		e = 2;
//		cout << e << ' ';
//	}
//	cout << std::endl;
//}
//
//void test5()
//{
//	//lzc::vector<string> v(10, "abc");
//	//v.reserve(20);
//
//	lzc::vector<string> v(10, "abc");
//	v.insert(v.begin(), "x");
//	v.push_back("y");
//	cout << v;
//	lzc::vector<string> vv(v);
//	lzc::vector<string> vvv;
//	cout << vv;
//	vvv = vv;
//	cout << vvv;
//}
//
//void test6()
//{
//	lzc::vector<int> v;
//	v.push_back(1);
//	v.push_back(2);
//	v.push_back(3);
//	v.push_back(4);
//	v.push_back(5);
//	v.push_back(6);
//	v.push_back(7);
//	cout << v;
//	for (auto it = v.begin(); it != v.end();)
//	{
//		if (*it % 2 == 0)
//			it = v.erase(it);
//		else
//			it++;
//	}
//	cout << v;
//
//}
void test7()
{
	int a[] = { 1,2,3,4,5,6 };
	lzc::vector<int> v(a, a + 5);
	lzc::vector<int> vv(10, 2);
	cout << v;
}

void test8() {
	vector<string> v;
	string s1("lisi");
	v.push_back(s1);
	v.push_back("zhangsan");
	v.push_back(string("wangwu"));
	INT_MAX
}
int main()
{
	test7();
	return 0;
}